package cn.stylefeng.guns.modular.hx.storage.model.params;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import cn.stylefeng.roses.kernel.model.validator.BaseValidatingParam;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * <p>
 * 库存表
 * </p>
 * @author zhucx
 * @since 2023-08-15
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class HxStorageStockParam implements Serializable, BaseValidatingParam {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Integer id;

    /**
     * 状态（正常、集货）
     */
    private String stockState;

    /**
     * 分公司id
     */
    private Long operateId;

    /**
     * 项目名称
     */
    private String operateName;

    /**
     * 客户id
     */
    private Long customerId;

    /**
     * 客户名称
     */
    private String customerName;

    /**
     * 仓库id
     */
    private Long warehouseId;

    /**
     * 仓库名称
     */
    private String warehouseName;

    /**
     * 库区id
     */
    private Long areaId;

    /**
     * 库区名称
     */
    private String areaName;

    /**
     * 库区编号
     */
    private String areaNumber;

    /**
     * 库位id
     */
    private Long positionId;

    /**
     * 库位编号
     */
    private String positionNumber;

    /**
     * 库位类型
     */
    private String positionType;

    /**
     * 托盘id
     */
    private Long trayId;

    /**
     * 托盘编号
     */
    private String trayNumber;

    /**
     * 商品id
     */
    private Long goodsId;


    private List<Long> goodsIdLists = new ArrayList<>();

    /**
     * 商品名称
     */
    private String goodsName;

    /**
     * 商品编号
     */
    private String goodsNumber;

    /**
     * 商品码
     */
    private String goodsPcode69;

    /**
     * 规格
     */
    private String goodsSpecs;

    /**
     * 分类
     */
    private String goodsBigtype;

    /**
     * 分类id
     */
    private Long goodsBigtypeId;

    /**
     * 基本单位
     */
    private String jibenUnit;
    private String baseNum;

    /**
     * 库存单位
     */
    private String kcUnit;

    /**
     * 库存换算率
     */
    private String kcRate;

    /**
     * 库存数量
     */
    private String kcNum;

    /**
     * 采购单位
     */
    private String cgUnit;

    /**
     * 采购换算率
     */
    private String cgRate;
    private String cgNum;

    /**
     * 批发单位
     */
    private String pfUnit;

    /**
     * 批发换算率
     */
    private String pfRate;
    private String pfNum;

    /**
     * 配送单位
     */
    private String psUnit;

    /**
     * 配送换算率
     */
    private String psRate;
    private String psNum;

    /**
     * 重量
     */
    private String goodsWeight;

    /**
     * 库存重量
     */
    private String stockWeight;

    /**
     * 体积
     */
    private String goodsVolume;

    /**
     * 库存体积
     */
    private String stockVolume;

    /**
     * 单价
     */
    private String goodsPrice;

    /**
     * 金额
     */
    private String stockMoney;

    /**
     * 批次
     */
    private String batch;

    /**
     * 生产日期
     */
    private String detailedDate;

    /**
     * 保质期
     */
    private String goodsWarranty;

    /**
     * 入库日期
     */
    private String putDate;

    /**
     * 发货客户id
     */
    private Long setUnitId;

    /**
     * 发货客户
     */
    private String setUnit;

    /**
     * v1
     */
    private String v1;

    /**
     * v2
     */
    private String v2;

    /**
     * 部门id
     */
    private Long deptId;

    /**
     * 交付id
     */
    private Long deliverId;

    /**
     * 查询模式
     */
    private String queryMode;
    /**
     * 调入时间
     */
    private Date transferTime;

    /**
     * 查询单位
     */
    private String stockUnit;

    /**
     * 开始时间
     */
    private String startTime;

    /**
     * 结束时间
     */
    private String endTime;

    /**
     * 有效期
     */
    private String expirationDate;

    /**
     * 库龄
     */
    private String storageDays;

    /**
     * 过期
     */
    private String expired;

    /**
     * 未超3分之一
     */
    private String expired1;

    /**
     * 已超3分之一
     */
    private String expired2;

    /**
     * 已超2分之一
     */
    private String expired3;

    /**
     * 存储编号
     */
    private String storageNumber;

    /**
     * 不下架
     */
    private String notOffShelf;

    /**
     * 基本数量
     */
    private BigDecimal jibenNum;

    /**
     * 库存数量
     */
    private Boolean isShoppingCart;

    @Override
    public String checkParam() {
        return null;
    }

}